﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SmartSpace.OrganizationalStructure
{
    public interface IOrganizationService
    {
        #region organization
        bool SaveOrganization(Organization organization);
        bool DeleteOrganization(Organization organization);
        Organization GetOrganization(Guid id, bool isRecursive);
        Organization GetOrganization(string code, bool isRecursive);
        List<Organization> GetChildren(Guid id, bool isRecursive);
        List<Organization> GetChildren(string code, bool isRecursive);
        #endregion

        #region organization type
        bool SaveOrganizationType(OrganizationType type);
        bool DeleteOrganizationType(OrganizationType type);
        bool DeleteOrganizationType(string code);
        bool IncludeSubOrganizationType(string code, string subCode);
        bool RemoveSubOrganizationType(string code, string subCode);
        OrganizationType GetOrganizationType(string code);
        List<OrganizationType> GetSubOrganizationTypes(string code);
        #endregion
    }
}
